1. Field of the Invention
The present invention relates to systems and methods for encoding data, and in particular to a system and method for generating and processing slice headers with high efficiency video coded data.
2. Description of the Related Art
There is rapid growth in the technologies associated with the generation, transmission, and reproduction of media programs. These technologies include coding schemes that permit digital versions of the media programs to be encoded to compress them to much smaller size and facilitate their transmission, storage, reception and playback. These technologies have application in personal video recorders (PVRs), video on demand (VOD), multiple channel media program offerings, interactivity, mobile telephony, and media program transmission.
Without compression, digital media programs are typically too large to transmit and/or store for a commercially acceptable cost. However, compression of such programs has made the transmission and storage of such digital media programs not only commercially feasible, but commonplace.
Initially, the transmission of media programs involved low to medium resolution images transmitted over high bandwidth transmission media such as cable television and satellite. However, such transmission has evolved to include lower bandwidth transmission media such as Internet transmission to fixed and mobile devices via computer networks, WiFi, Mobile TV and third and fourth generation (3G and 4G) networks. Further, such transmissions have also evolved to include high definition media programs such as high definition television (HDTV), which have significant transmission bandwidth and storage requirements.
The High Efficiency Video Coding (HEVC) coding standard (or H.265) is the most recent coding standard promulgated by the ISO/IEC MPEG standardization organizations. The coding standard preceding HEVC included the H.262/MPEG-2 and the subsequent H.264/MPEG-4 Advanced Video Coding (AVC) standard. H.264/MPEG-4 has substantially replaced H.262/MPEG-2 in many application including high definition (HD) television. HEVC supports resolutions higher than HD, even in stereo or multi-view embodiments, and is more suitable for mobile devices such as tablet personal computers. Further information regarding HEVC can be found in the publication “Overview of the High Efficiency Video Coding (HEVC) Standard, by Gary J. Sullivan, Jens-Rainer Ohm, Woo-Jin Han and Thomas Wiegand, IEEE Transactions on Circuits and Systems for Video Technology, December 2012, which is hereby incorporated by reference herein.
As in other coding standards, the bitstream structure and syntax of HEVC compliant data are standardized, such that every decoder conforming to the standard will produce the same output when provided with the same input. Some of the features incorporated into the HEVC standard include the definition and processing of a slice, one or more of which may together comprise one of the pictures in a video sequence. A video sequence comprises a plurality of pictures, and each picture may comprise one or more slices. Slices include non-dependent slices and dependent slices. A non-dependent slice (hereinafter simply referred to as a slice) is a data structure that can be decoded independently from other slices of the same picture in terms of entropy encoding, signal prediction, and residual signal construction. This data structure permits resynchronization of events in case of data losses. A “dependent slice” is a structure that permits information about the slice (such as those related with tiles within the slice or wavefront entries) to be carried to the network layer, thus making that data available to a system to more quickly process fragmented slices. Dependent slices are mostly useful for low-delay encoding.
HEVC and legacy coding standards define a parameter set structure that offers improved flexibility for operation over a wide variety of applications and network environments, and improved robustness to data losses. Parameter sets contain information that can be shared for decoding of different portions of the encoded video. The parameter set structure provides a secure mechanism for conveying data that is essential to the decoding process. H.264 defined both sequence parameter sets (SPS) that describe parameters for decoding a sequence of pictures and a picture parameter set (PPS) that describes parameters for decoding a picture of the sequence of pictures. HEVC introduces a new parameter set, the video parameter set (VPS).
The encoding and decoding of slices is performed according to information included in a slice header. The slice header includes syntax and logic for reading flags and data that are used in decoding the slice.
Like its predecessors, HEVC supports both temporal and spatial encoding of picture slices. HEVC defines slices to include I-slices, which are spatially, but not temporally encoded with reference to another slice. I-slices are alternatively described as “intra” slice encoded. HEVC also defines slices to include P (predictive) slices, which are spatially encoded and temporally encoded with reference to another slice. P-slices are alternatively described as “inter” slice encoded. HEVC also describes slices to include bi-predictive (B)-slices. B-slices are spatially encoded and temporally encoded with reference to two or more other slices. Further, HEVC consolidates the notion of P and B slices into general B slices that can be used as reference slice.
Motion compensation is one of the key technologies used in HEVC. Such technologies take advantage of correlation between temporally adjacent pictures to reduce the bandwidth required to represent the video signal. Similar techniques (known as Intra block copying, intraBC) have been employed to try to reduce bandwidth by taking advantages of block similarities within the same picture. Initial attempts at such coding were of limited success because textual patterns in spatially neighboring areas may be similar to the current coding block, but typically change gradually over space. Thus, it is difficult to find a block closely matching the current block within the same picture, thus limiting coding efficiency improvements. However, with some screen content, spatial correlation among blocks within the same picture can be significant. For example, video with text and graphics typically present repetitive patterns within the same picture, and for such video content, intraBC can effectively reduce bandwidth requirements. Consequently, the HEVC standard includes provision for an Intra block copying mode. In the intraBC, a prediction unit (PU) is predicted from a previously reconstructed block within the same picture. Analogous to a PU in motion compensation between frames, a displacement vector (called a block vector or BV) is used to signal the relative displacement from the position of the current PU to that of the reference block. The prediction errors after compensation are then coded in the same fashion as how the inter residuals are coded in inter-picture coding.
Since the intraBC copy and Inter mode of HEVC are similar in many respects, the intraBC can be considered to be a special inter mode which uses the current reconstructed area in the current picture as a reference. Because of such similarities, synergies between intraBC and Inter mode suggest that signaling and other processing enhancements may be available if the two concepts are unified (for example, see Chao Pang, Ye-Kui Wang, Vadim Seregin, Krishna Rapaka, Marta Karczewicz, Xiaozhong Xu, Shan Liu, Shawmin Lei, Bin Li, Jizheng Xu, “Non-CE2 Test1: Intra block copy and inter signalling unification,” Document of Joint Collaborative Team on Video Coding, JCTVC-T0227, 20th Meeting: Geneva, CH, 10-18 Feb. 2015, which is hereby incorporated by reference herein). This disclosure presents such enhancements.